package com.example.yan_music.utils;

import android.util.ArrayMap;
import android.view.KeyEvent;

/**
 * <p>
 * 数据缓冲池
 * 用来保存数据的，页面之间的数据统一面向该缓存池
 * 单例模式
 * </p>
 */
public class XDataPool {

    /**
     * 当前播放歌曲的歌词
     */
    public static final String CURRENT_PLAY_SONG_LYRIC = "currentPlaySongLyric";
    public static final String CURRENT_PLAY_SONG_COVER_URL = "currentPlaySongCoverUrl";
    public static final String CURRENT_PLAY_SONG_BASE_INFO = "currentPlaySongBaseInfo";

    /**
     * 缓存池集合
     */
    private static ArrayMap mDataList = new ArrayMap<String, Object>();

    /**
     * XDataPool对象
     */
    private static XDataPool xDataPool = new XDataPool();

    /**
     * 私有构造器
     */
    private XDataPool() {
    }

    /**
     * 暴露一个方法用于提供缓存池对象
     */
    public static XDataPool getInstance() {
        return xDataPool;
    }

    /**
     * 将数据放入缓存池中
     *
     * @param key
     * @param object
     */
    public void put(String key, Object object) {
        if (mDataList.containsKey(key)) {
            mDataList.remove(key);
        }
        mDataList.put(key, object);
    }

    /**
     * 从缓存池中获取数据
     *
     * @param key 需要取的数据的key值
     * @return 该key对应的object
     */
    public Object get(String key) {
        if (!mDataList.containsKey(key)) {
            XLog.d("不存在[" + key + "]");
            return "不存在这个key";
        }
        return mDataList.get(key);
    }

    /**
     * 移除数据
     *
     * @param key   需要移除数据对应的key
     * @return
     */
    public synchronized Object remove(String key){
        return xDataPool.remove(key);
    }
}
